package com.csun.cmny.provider.controller.message.oldmanIn;

import com.csun.cmny.base.dto.LoginAuthDto;
import com.csun.cmny.provider.controller.message.AbstractCurTaskQueryProcessor;
import com.csun.cmny.provider.dto.OrderQueryDto;
import com.csun.cmny.provider.model.dto.message.OldmanInQueryDto;
import com.csun.cmny.provider.model.vo.message.OldmanInVo;
import com.csun.cmny.provider.service.OldmanService;
import com.csun.cmny.util.PublicUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.List;

@Slf4j
@Component
public class OldmanInTaskQuery extends AbstractCurTaskQueryProcessor<OldmanInVo> {

    @Resource
    private OldmanService oldmanService;

    @Override
    protected List<OldmanInVo> queryCurTaskList(LoginAuthDto loginAuthDto) {

        //根据老人状态查询待办任务
        List<Integer> statusList = oldmanService.queryCurTaskStates(loginAuthDto);
        if (PublicUtil.isEmpty(statusList)) {
            return null;
        }

        /*
        * 该查询方法查询入院流程中的老人
        * 查询入院缴费单时，只适用于查询有且仅有一个缴费单的老人
        * 如果需要多次入院，且以前的入院缴费单也保存了，则入院账单需要单独查询
        * */
        OldmanInQueryDto queryDto = new OldmanInQueryDto();
        queryDto.setGroupId(loginAuthDto.getGroupId());
        queryDto.setStatusList(statusList);
        List<OldmanInVo> voList = oldmanService.queryOldmanInCurTaskList(queryDto);
        return voList;
    }

    @Override
    protected List<OldmanInVo> queryCurOrderList(OrderQueryDto orderQueryDto, LoginAuthDto loginAuthDto) {
        return null;
    }
}
